Привязка счёта/подписка СБП


1. Привязка счёта без оплаты (регистрация QR-кода для привязки счёта/подписки по СБП)

  • •

    Запрос «Регистрация QR-кода для привязки счёта/подписки по СБП» позволяет Плательщику выполнить привязку своего банковского счёта к ТСП без проведения оплаты СБП C2B.

  • •

    Последующие платежи с привязанного счета в адрес данного ТСП в рамках операций СБП C2B будут выполняться без участия Плательщика.

  • •

    Сценарий может применяться как для разовых, так и для регулярных платежей.

1.1. Метод RegQRcSub

a) Описание параметров запроса:

Код ключаТип данныхrequiredНазначение
commandString (an-1…50)yТип запроса. Константа «RegQRcSub».
TermNoString (an-20)yУникальный идентификатор терминала.
qrcTypeString (an-32)yТип запрашиваемого QR-кода. Константа — «03».
subscriptionPurposeString (ans-140)yЦель привязки счета. Информация от ТСП с деталями привязки счета. Данная информация будет отображаться на экране Плательщика при оформлении привязки счета в ДБО Банка Плательщика. Рекомендуется указывать подробную информацию о привязке счета, включая, если применимо, регулярность платежей, сумму регулярных платежей и прочее*.
queryData.notificationUrlString (ans-512)yПолный URL для получения уведомления о результате привязки счета.
qrTtlString (an-1…6)o

Срок жизни Функциональной ссылки СБП в минутах.

Минимальное допустимое значение — «1». Максимальное допустимое значение — «129 600» (90 дней).

Рекомендация: устанавливать срок жизни Функциональной ссылки СБП не менее «5» минут. Если поле «qrTtl» не передано в запросе, будет использовано значение по умолчанию — «4 320» минут (3 суток).

redirectUrlString (ans-1024)оСодержит ссылку для автоматического возврата в приложение или на интернет страницу. Допускаются только символы в кодировке ASCII. Формат должен соответствовать правилам кодировки URL.
Если все же требуется использовать в redirectUrl кириллические символы, необходимо перекодировать их в соответствующий ASCII код, используя percent-encoded octets согласно RFC3986.

Если требуется сформировать QR-код для привязки дополнительного счёта Плательщика в том же Банке

Код ключаТип данныхrequiredНазначение
subscriptionServiceIdString (32)оИдентификатор привязки. Обязательно при наличии subscriptionServiceName, т. к. параметры subscriptionServiceId и subscriptionServiceName могут быть переданы только вместе. При получении параметров subscriptionServiceId и subscriptionServiceName Банк Плательщика должен использовать их в ходе проверки данных привязки счёта на уникальность.
subscriptionServiceNameString (70)оНаименование привязки. Обязательно при наличии subscriptionServiceId, т. к. параметры subscriptionServiceId и subscriptionServiceName могут быть переданы только вместе. При получении параметров subscriptionServiceId и subscriptionServiceName Банк Плательщика должен использовать их в ходе проверки данных привязки счёта на уникальность.

b) Примерный формат запроса:

1{
2    "command":"RegQRcSub",
3    "TermNo":"90080567",
4    "qrTtl":"10",
5    "qrcType":"03",
6    "subscriptionPurpose":"Подписка на оплату услуг Интернет 500р./мес.",
7    "queryData":
8        {
9        "notificationUrl":"https://sbp-subscription"
10        },
11    "redirectUrl":"https://exampletsp.io/qwertyui"
12    }

Примечание: При отсутствии данных в поле subscriptionPurpose ответ вернется с ошибкой:

{
    "ErrorCode": 30,
    "message": "Отсутствуют данные в полях: subscriptionPurpose"
}

c) Описание параметров ответа:

Код ключаТип данныхrequiredНазначение
ErrorCodeString (an-20)yКод ответа*.
messageString (ans-1024)yРасшифровка кода ответа**.
qrcIdString (an-32)yИдентификатор QR-кода.
payloadString (1…999)yПлатежная ссылка***.
payrrnString (an-12)yРеференсный идентификатор запроса в системе Банка

*, ** Таблица возможных кодов ответа приведена в приложении 2.

*** Формат payload может быть двух видов:

d) Примерный формат ответа

  • •

    200 OK

    {
        "ErrorCode":"RQ00000",
        "message":"Запрос обработан успешно",
        "qrcId":"AB1S000V3LEOSC2C8HU8H1B06C6P1P5L ",
        "payload":"https://sub.nspk.ru/AB1S000V3LEOSC2C8HU8H1B06C6P1P5L",
        "payrrn":" 000096116491 "
    }

Примечание: текстовые данные передаются в формате urlencoded.

  • •

    400 Bad Request

    {
        "ErrorCode":"Код ответа",
        "message":"Расшифровка кода ответа"
    }

Результатом выполнения запроса «Регистрация QR-кода для привязки счета/подписки по СБП» является передача Банком Плательщика следующих параметров:

  1. «subscriptionToken» — Уникальный Идентификатор привязки счета, назначаемый Банком Плательщика;

  2. «memberId» – Идентификатор банка Плательщика.

Важно:

  • •

    Значения параметров «subscriptionToken» и «memberId» необходимо хранить в системе ТСП для дальнейшего использования ТСП в сценарии «Оплата с привязанного счета по инициативе ТСП». В случае отсутствия или утери значения параметра «subscriptionToken», привязку счета необходимо выполнить повторно.

  • •

    Для получения значений параметров «subscriptionToken» и «memberId» ТСП необходимо реализовать возможность получения callback уведомлений.

1.2. Нотификация по сценарию «Регистрация QR-кода для привязки счета/подписки по СБП

Запрос отправляется из ПШ Банка во внутреннюю систему ТСП на URL адрес, указанный в параметре «queryData.notificationUrl» при направлении запроса «RegQRcSub».

Метод «subscription/notification»

a) Описание параметров запроса:

Код ключаТип данныхrequiredНазначение
commandString (an-1…50)yТип запроса. Константа «subscription/notification».
сodeString (an-7)y

Возможные варианты кодов ответа:

— «RQ00000» — Запрос обработан успешно;

— «RQ05030» — Плательщик отказался от оформления подписки.

messageString (ans-255)yРасшифровка кода ответа*.
statusString (an-10)y

Возможные статусы оформления подписки:

— «ACWP» — подписка оформлена;

— «RJCT» — подписка не оформлена.

qrcIdString (an-32)yИдентификатор QR-кода
subscriptionTokenString (an-32)oИдентификатор Подписки, назначаемый Банком Плательщика.
Отсутствует, если Плательщик не дал согласие на оформление подписки.
memberIdString (an-12)oИдентификатор Банка Плательщика.
Отсутствует, если Плательщик не дал согласие на оформление подписки.

* Таблица возможных кодов ответа приведена в приложении 2.

b) Примерный формат запроса при согласии Плательщика совершить привязку счёта:

{
    "command":"subscription/notification ",
    "сode":"RQ00000",
    "message":"Привязка счета оформлена",
    "status":"ACWP",
    "qrcId":"BB1S0053V5S91S2E83RPL8THQSRS7O8K",
    "subscriptionToken":"6feeacc6a74648589285346e3785ad9e",
    "memberId":"100000000008"
}

c) Примерный формат запроса при отказе Плательщика совершить привязку счёта:

{
    "command":"subscription/notification",
    "сode":"RQ05030",
    "message":"Плательщик отказался от привязки счета",
    "status":"RJCT",
    "qrcId":"BB1S0053V5S91S2E83RPL8THQSRS7O8K",
    "subscriptionToken":"00000000000000000000000000000000",
    "memberId ":"100000000008"
}

d) ВС ТСП отвечает http-кодом «200» — успешное получение нотификации, или ошибкой.

В настоящий момент ответ ВС не обрабатывается шлюзом Альфа-Банка. Обработка ответов ТСП находится в разработке.

В случае добавления со стороны НСПК дополнительных параметров уведомления, система принимающая их от шлюза Альфа-Банка не должна рассматривать такие неожиданные параметры как ошибочный запрос.

2. Оплата по QR-коду с последующей привязкой счёта/подпиской по СБП

  • •

    Запрос «Оплата по QR-коду с последующей привязкой/подпиской по СБП» позволяет Плательщику выполнить разовую оплату в рамках операции СБП C2B с последующей привязкой своего банковского счета к ТСП.

  • •

    Последующие платежи с привязанного счета в адрес данного ТСП будут выполняться без участия Плательщика.

  • •

    Регистрация Функциональной ссылки СБП для выполнения оплаты с последующей привязкой счета представляет собой регистрацию одноразовой Платежной ссылки с "qrcType"="02" с дополнительным параметром "subscriptionPurpose" (информация от ТСП с деталями привязки счета).

2.1 Метод GetQRCd

a) Описание параметров запроса:

Код ключаТип данныхrequiredНазначение
commandString (an-1…50)yТип запроса. Константа «GetQRCd».
TermNoString (an-20)yУникальный идентификатор терминала.
amountNumberyСумма платежа в минорных единицах (копейках).
currencyString (ans-3)yКод валюты (для рублей должен передаваться «RUB»).
widthStringoШирина картинки QR-кода (только числовое значение).
heightStringoВысота картинки QR-кода (только числовое значение).
qrcTypeString (n-2)yТип запрашиваемого QR-кода. Константа — «02».
paymentPurposeString (ans-140)oНазначение платежа.
messageIDString (an-1…1024)oУникальный идентификатор сообщения, GUID. Только латинские символы!
qrTtlString (an-1…6)o

Срок жизни Функциональной ссылки СБП в минутах. Минимальное допустимое значение — «1». Максимальное допустимое значение — «129 600» (90 дней).

Рекомендация: устанавливать срок жизни Функциональной ссылки СБП не менее «5» минут. Если поле «qrTtl» не передано в запросе, будет использовано значение по умолчанию — «4 320» минут (3 суток).

queryData.notificationUrlString (ans-512)yПолный URL для получения уведомления о финальном статусе оплаты QR-кода, а также о результате привязки счёта.
queryData.notificationUrl_subString (ans-512)o

Полный URL для получения уведомления о результате привязки счета.

В случае указания значения в данном поле, на указанный URL адрес будет направлено одно отдельное уведомление о результате привязки счета Плательщика.

subscriptionPurposeString (ans-140)y

Цель привязки счета. Информация от ТСП с деталями привязки счета. Данная информация будет отображаться на экране Плательщика при оформлении привязки счета в ДБО Банка Плательщика.

Рекомендуется указывать подробную информацию о привязке счета, включая, если применимо, регулярность платежей, сумму регулярных платежей и прочее*.

redirectUrlString (ans-1024)oСодержит ссылку для автоматического возврата в приложение или на сайт ТСП. Допускаются только символы кодировке ASCII. Формат должен соответствовать правилам кодировки URL.
Если все же требуется использовать в redirectUrl кириллические символы, необходимо перекодировать их в соответствующий ASCII код, используя percent-encoded octets согласно RFC3986.

Если требуется сформировать QR-код для привязки дополнительного счёта Плательщика в том же Банке

Код ключаТип данныхrequiredНазначение
subscriptionServiceIdString (32)oИдентификатор привязки. Обязательно при наличии subscriptionServiceName, т. к. параметры subscriptionServiceId и subscriptionServiceName могут быть переданы только вместе. При получении параметров subscriptionServiceId и subscriptionServiceName Банк Плательщика должен использовать их в ходе проверки данных привязки счёта на уникальность.
subscriptionServiceNameString (70)oНаименование привязки. Обязательно при наличии subscriptionServiceId, т. к. параметры subscriptionServiceId и subscriptionServiceName могут быть переданы только вместе. При получении параметров subscriptionServiceId и subscriptionServiceName Банк Плательщика должен использовать их в ходе проверки данных привязки счёта на уникальность.

Если требуется сформировать динамический QR-код под определенного Плательщика, то необходимо использовать следующие поля:

Код ключаТип данныхrequiredНазначение
queryData.SenderFIOString (an-140)oФамилия, Имя и Отчество Плательщика (не является регистрозависимым)
queryData.SenderIDString (an-11.13)oИдентификатор Плательщика (номер телефона Плательщика — 0079123456789)
queryData.SenderBankBICString (n-9)oБИК Банка Плательщика

Важно! При отсутствии данных в параметре subscriptionPurpose будет зарегистрирована обычная одноразовая Платежная ссылка СБП с "qrcType"="02" без возможности совершить привязку счета.

b) Примерный формат запроса:

1{
2    "command":"GetQRCd",
3    "TermNo":"90080567",
4    "amount":"10000",
5    "currency":"RUB",
6    "qrcType":"02",
7    "paymentPurpose":"Назначение платежа",
8    "subscriptionPurpose":"Подписка на оплату услуг Интернет 500р./мес.",
9    "width":"600",
10    "height":"600",
11    "qrTtl":"10",
12    "messageID":"message",
13    "queryData":
14        {
15        "notificationUrl":"https://sbp-payments",
16        "notificationUrl_sub":"https://sbp-subscription"
17        },
18    "redirectUrl": "https://exampletsp.io/qwertyui"
19}

c) Описание параметров ответа:

Код ключаТип данныхrequiredНазначение
ErrorCodeString (an-20)yКод ответа*.
TermNoString (an-20)yУникальный идентификатор терминала.
image

String(an)

Длинна зависит от формата, порядок 7000 символов.

y

Изображение QR-кода содержит энкодированный BASE64 файл изображения QR-кода 300×300 pix формата .png
messageString (ans-1024)yРасшифровка кода ответа**.
payloadString (1…999)yПлатежная ссылка***.
messageIDString (ans-1024)oУникальный идентификатор сообщения, GUID
payrrnString (n-12)yРеференсный идентификатор запроса в системе Банка
qrcIdString (an-32)yИдентификатор QR-кода
statusString (n-7)yСтатус регистрации Платежной ссылки СБП

*, ** Таблица возможных кодов ответа приведена в приложении 2.

*** Формат payload может быть двух видов:

d) Примерный формат ответа:

  • •

    200 OK

    1{
    2    "ErrorCode": 0, 
    3    "TermNo": 90080567, 
    4    "image":"iVBORw0KGgoAAAANSUhEUgAAghjysAAAAgjjafggkqqBEoAAARKCAIAAAQA/w……………...........YIAI",
    5    "message":"%u0423%u0441%u043F%u0435%u0445",   
    6    "messageID":"message",
    7    "payload":" https://qr.nspk.ru/AS1000670LSS7DN18SJQDNP4B05KLJLK", 
    8    "payrrn":"000022134348", 
    9    "qrcId":"AS1000670LSS7DN18SJQDNP4B05KLJLK ", 
    10    "status":"CREATED" 
    11}

Примечание: текстовые данные передаются в формате urlencoded.

  • •

    400 Bad Request

    {
        "ErrorCode":"Код ответа",
        "message":"Расшифровка кода ответа"
    }

Результатом выполнения запроса «Оплата по QR-коду с последующей привязкой/подпиской по СБП» является передача Банком Плательщика (банк-эмитент) следующих параметров:

  1. «subscriptionToken» — Уникальный Идентификатор привязки счета, назначаемый Банком Плательщика;

  2. «memberId» – Идентификатор банка Плательщика.

Важно:

  • •

    Значения параметров "subscriptionToken" и "memberId" необходимо хранить в системе ТСП для дальнейшего использования ТСП в сценарии «Оплата с привязанного счета по инициативе ТСП». В случае отсутствия или утери значения параметра "subscriptionToken", привязку счета необходимо выполнить повторно.

  • •

    Для получения значений параметров "subscriptionToken" и "memberId" ТСП необходимо реализовать возможность получения callback уведомлений.

2.2. Нотификация по сценарию «Оплата по QR-коду с последующей привязкой счета/подпиской по СБП»

Запросы о нотификации отправляются из ПШ Банка во внутреннюю систему ТСП на URL адрес, указанный в параметре «queryData.notificationUrl» или «queryData.notificationUrl_sub» при направлении запроса «GetQRCd».

Информация о возможных сценариях нотификации:

  1. При успешной оплате и успешной привязке счёта в адрес ТСП направляется два callback уведомления:

    • •

      об успешности оплаты по QR-коду — метод «qrc/notification»;

    • •

      об успешности привязки счета — метод «subscription/notification».

  2. Если Плательщик совершил оплату, но отказался от привязки счета, то в ТСП направляется два callback уведомления:

    • •

      об успешности оплаты по QR-коду (метод «qrc/notification»);

    • •

      об отказе Плательщика от привязки счета (метод «subscription/notification»).

  3. Если Плательщик не стал совершать оплату, то привязка счета ему не предлагается, в ТСП callback уведомление не направляется.

3. Оплата с привязанного счёта по инициативе ТСП

Запрос «Оплата с привязанного счета по инициативе ТСП» позволяет по запросу ТСП выполнить оплату в рамках операции СБП C2B со счета Плательщика, привязка которого была выполнена ранее в рамках запроса «Регистрация QR-кода для привязки счета/подписки по СБП» или «Оплата по QR-коду с последующей привязкой счета/подпиской по СБП». Сценарий может применяться как для разовых, так и для регулярных платежей.

Для выполнения оплаты с привязанного счета необходимо направить в платежный шлюз Банка два последовательных запроса:

  1. Запрос «GetQRCd» на генерирование Платежной ссылки со значением параметра qrcType = «02» и с обязательно заполненным значением параметра «paymentPurpose»;

  2. Запрос «QRCSubPayPetition» на оплату с привязанного счёта с указанием:

    • •

      идентификатора QR-кода, полученного в ответе на запрос GetQRCd;

    • •

      идентификаторов «subscriptionToken» и «SenderMemberId», полученных в callback уведомлении по методу «subscription/notification».

В случае удаления Плательщиком привязки счета Банк Плательщика, получив запрос по сценарию «Оплата с привязанного счета по инициативе ТСП», отклоняет запрос и направляет в адрес ТСП нотификацию с сообщением — «Привязка счета не найдена».

Оплату с привязанного счета можно проводить на сумму до 1 000 000 руб.

3.1. Генерация Платежной ссылки

Метод «GetQRCd»

a) Описание параметров запроса:

Код ключаТип данныхrequiredНазначение
commandString (an-1…50)yТип запроса. Константа «GetQRCd».
TermNoString (an-20)yУникальный идентификатор терминала.
amountNumberyСумма платежа в минорных единицах (копейках).
currencyString (ans-3)yКод валюты (для рублей должен передаваться «RUB»).
widthStringoШирина картинки QR-кода (только числовое значение).
heightStringoВысота картинки QR-кода (только числовое значение).
qrcTypeString (n-2)yТип запрашиваемого QR-кода. Константа — «02».
paymentPurposeString (ans-140)yНазначение платежа. Обязательно к заполнению в сценарии «Оплата с привязанного счета по инициативе ТСП».
messageIDString (an-1…1024)oУникальный идентификатор сообщения, GUID. Только латинские символы!
qrTtlString (an-1…6)o

Срок жизни Функциональной ссылки СБП в минутах. Минимальное допустимое значение — «1». Максимальное допустимое значение — «129 600» (90 дней).

Рекомендация: устанавливать срок жизни Функциональной ссылки СБП не менее «5» минут. Если поле «qrTtl» не передано в запросе, будет использовано значение по умолчанию — «4 320» минут (3 суток).

queryData.notificationUrlString (ans-512)yПолный URL для получения уведомления о решении Банка Плательщика по оплате с привязанного счёта, а также о финальном статусе оплаты QR-кода.

queryData.notificationUrl_subRes

String (ans-512)o

Полный URL для получения уведомления о решении Банка Плательщика по оплате с привязанного счета.

В случае указания значения в данном поле, на указанный URL адрес будет направлено одно отдельное уведомление о решении Банка Плательщика по оплате с привязанного счета.

redirectUrlString (ans-1024)oСодержит ссылку для автоматического возврата в приложение или на сайт ТСП. Допускаются только символы кодировке ASCII. Формат должен соответствовать правилам кодировки URL.
Если все же требуется использовать в redirectUrl кириллические символы, необходимо перекодировать их в соответствующий ASCII код, используя percent-encoded octets согласно RFC3986.

b) Примерный формат запроса:

1{
2    "command":"GetQRCd",
3    "TermNo":"90080567",
4    "amount":"10000",
5    "currency":"RUB",
6    "qrcType":"02",
7    "paymentPurpose":"Назначение платежа",
8    "width":"600",
9    "height":"600",
10    "qrTtl":"10",
11    "messageID":"message",
12    "queryData":
13        {
14        "notificationUrl":"https://sbp-payments",
15        "notificationUrl_subRes":"https://sbp-subscription_ resolution"
16        },
17    "redirectUrl": "https://exampletsp.io/qwertyui"
18}

c) Описание параметров ответа:

Код ключаТип данныхrequiredНазначение
ErrorCodeString (an-20)yКод ответа*.
TermNoString (an-20)yУникальный идентификатор терминала.
image

String (an)

Длинна зависит от формата, порядок 7000 символов.

y

Изображение QR-кода содержит энкодированный BASE64 файл изображения QR-кода 300×300 pix формата .png
messageString (ans-1024)yРасшифровка кода ответа**.
messageIDString (ans-1024)oУникальный идентификатор сообщения, GUID.
payloadString (1…999)yПлатежная ссылка***.
payrrnString (n-12)yРеференсный идентификатор запроса в системе Банка.
qrcIdString (an-32)yИдентификатор QR-кода.
statusString (n-7)yСтатус регистрации Платежной ссылки СБП

*, ** Таблица возможных кодов ответа приведена в приложении 2.

*** Формат payload может быть двух видов:

d) Примерный формат ответа:

  • •

    200 OK

    1{
    2    "ErrorCode": 0,
    3    "TermNo": 90080567,
    4    "image": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAYAAAC
    5    "message": "%u0423%u0441%u043F%u0435%u0445",
    6    "messageID": "message",
    7    "payload": "https://qr.nspk.ru/AD10000BBJKO23GB98LA1FGBRIHH3K89?type=02&bank=100000000008&sum=10000&cur=RUB&crc=D87E",
    8    "payrrn": "000755856505",
    9    "qrcId": "AD10000BBJKO23GB98LA1FGBRIHH3K89",
    10    "status": "CREATED"
    11}

Примечание: текстовые данные передаются в формате urlencoded.

  • •

    400 Bad Request

    {
        "ErrorCode":"Код ответа",
        "message":"Расшифровка кода ответа"
        }

3.2. Запрос на оплату с привязанного счета по инициативе ТСП

Метод QRCSubPayPetition используется ТСП для того, чтобы Банк Плательщика выполнил оплату с привязанного счета.

Метод «QRCSubPayPetition»

a) Описание параметров запроса:

Код ключаТип данныхrequiredНазначение
commandString (an-1…50)yТип запроса. Константа «QRCSubPayPetition».
TermNoString (an-20)yУникальный идентификатор терминала.
subscriptionTokenString (an-32)yИдентификатор Привязки счета, назначенный Банком Плательщика ранее на этапе оформления привязки счета*.
SenderMemberIdString (an-12)yИдентификатор банка Плательщика.
qrcIdString (an-32)yИдентификатор QR-кода.

* Если привязка счета была подтверждена Плательщиком, Банк Плательщика в обязательном порядке должен передать параметр «subscriptionToken» — Уникальный Идентификатор привязки счета. Уникальный Идентификатор привязки счета должен однозначно идентифицировать согласие Плательщика в Банке Плательщика.

b) Примерный формат запроса:

{
    "command":"QRCSubPayPetition ",
    "TermNo":"90080567",
    "subscriptionToken":"70LSS7DN18SJQRS10006DNPKLJL24B05"
    "SenderMemberId":"100000000008",
    "qrcId":" AD10000BBJKO23GB98LA1FGBRIHH3K89"
}

c) Описание параметров ответа:

Код ключаТип данныхrequiredНазначение
ErrorCodeString (an-20)yКод ответа*.
messageString (ans-140)yРасшифровка кода ответа**.

*, ** Таблица возможных кодов ответа приведена в приложении 2.

d) Примерный формат ответа:

  • •

    200 OK

    { 
        "ErrorCode":"RQ00000", 
        "message":"Запрос обработан успешно" 
    }

  • •

    400 Bad Request

    {
        "ErrorCode":"Код ответа",
        "message":"Расшифровка кода ответа"
    }

3.3. Нотификация по сценарию «Оплата с привязанного счёта по инициативе ТСП»

Запросы о нотификации отправляются из ПШ Банка во внутреннюю систему ТСП на URL адрес, указанный в параметре «queryData.notificationUrl» или «queryData.notificationUrl_subRes» при направлении запроса «GetQRCd».

Нотификация по оплате с привязанного счёта состоит из двух уведомлений:

  1. Уведомление о согласии/отказе в проведении платежа — метод «resolution /notification»;

  2. Уведомление о проведении/отказе в проведении платежа по QR-коду — метод «qrc/notification».

Метод «resolution /notification»

a) Описание параметров запроса:

Код ключаТип данныхrequiredНазначение
commandString (an-1…50)yТип запроса. Константа «resolution/notification»
codeString (an-7)y

Возможные варианты кодов ответа:

«RQ00030» — Согласие Банка Плательщика на выполнение платежа

«RQ05031» — Отказ Банка Плательщика. Привязка счета не найдена

«RQ05032» — Отказ Банка Плательщика в выполнении платежа

«RQ05060» — Недостаточно денежных средств для проведения операции

«RQ05061» — Превышен лимит по сумме операций по СБП

«RQ05062» — Превышен лимит по количеству операций по СБП

«RQ05063» — Подозрение в мошенничестве

«RQ05064» — Выполнение операций в данной категории ТСП запрещено

«RQ05065» — Счёт заблокирован

«RQ05066» — Счёт закрыт

«RQ05067» — Выполнение операции запрещено по требованию законодательства

messageString (ans-1…1024)yРасшифровка кода ответа*.
qrcIdString (an-32)yИдентификатор QR-кода

* Таблица возможных кодов ответа приведена в приложении 2.

b) Примерный формат запроса при успешной оплате с привязанного счета:

{
    "command":"resolution/notification ",
    "code":" RQ00030",
    "message":" Согласие на проведение платежа ",
    "qrcId":" BD10006FEU7CQ9VE8D383VP0O2VH78D9",
}

c) Примерный формат запроса в случае если недостаточно денежных средств на счёте Плательщика/сумма больше установленного лимита:

{
    "command":" resolution/notification ",
    "code":" RQ05032",
    "message":" Отказ в выполнении платежа ",
    "qrcId":" BD10004KH55FOMC48QIR3FCDEHVLA23F ",
}

d) Примерный формат запроса в случае направления запроса ТСП на оплату с привязанного счета, когда привязка счета была успешно создана, но позже Плательщиком удалена:

{
    "command":" resolution/notification ",
    "code":"RQ05031",
    "message":"Привязка счета не найдена ",
    "qrcId":" BD10004KH55FOMC48QIR3FCDEHVLA23F ",
}

e) ВС ТСП отвечает http-кодом «200» — успешное получение нотификации, или ошибкой.

В настоящий момент ответ ВС не обрабатывается шлюзом Альфа-Банка. Обработка ответов ТСП находится в разработке.

В случае добавления со стороны НСПК дополнительных параметров уведомления, система принимающая их от шлюза Альфа-Банка не должна рассматривать такие неожиданные параметры как ошибочный запрос.

4. Запрос статуса привязки счёта

Запрос предназначен для попытки уточнения в ПШ Банка привязки счета со стороны ТСП.

Метод GetQRCSubStatus.

a) Описание параметров запроса:

Код ключаТип данныхrequiredНазначение
commandString (an-1…50)yТип запроса. Константа «GetQRCSubStatus».
TermNoString (an-20)yУникальный идентификатор терминала.
qrcIdString(an-32)yИдентификатор QR-кода.
RQperiodString(n-3)oПериод времени, за который нужно искать уведомление для Агенета ТСП о решении Банка Плательщика по привязке счета. (опционально*).

*Если параметр не передан в запросе, то поиск будет осуществляться без ограничения по времени.

b) Примерный формат запроса:

{
  "command":"GetQRCSubStatus",
  "TermNo":"90080567",
  "qrcId":"BB1S002PRSK6SR3E9R7P0H077UKN1QVF",
  "RQperiod":"14"
}

c) Описание параметров ответа:

Код ключаТип данныхrequiredНазначение
ErrorCodeString (an-20)yКод ответа*.
messageString (ans-140)yРасшифровка кода ответа**.
qrcIdString(an-32)oИдентификатор QR-кода.
statusString(a-4)oСтатус выполнения привязки счета Плательщика.
subscriptionTokenString(an-32)oУникальный идентификатор привязки счета Плательщика в Банке Плательщика.
memberIdString(an-12)oИдентификатор Банка Плательщика.
notifyDateString(ans-19)oДата получения уведомления о результате выполнения привязки счета Плательщика.

*, ** Таблица возможных кодов ответа приведена в приложении 2.

Примечание:

  • •

    Если уведомление найдено, то в ответе будет присутствовать параметр «status».

  • •

    Если в ходе выполнения запроса возникла ошибка обработки запроса, то в ответе будут переданы только код ошибки не равный нулю и описание ошибки.

  • •

    Если уведомление не было найдено (не получено от НСПК), то запрос будет считаться успешно выполненным и в ответе будет передан код ошибки и описание, соответствующее успешному ответу, но без дополнительных параметров.

d) Примерный формат ответа:

  • •

    200 OK

    {
        "ErrorCode": 0,
        "memberId": 600000000015,
        "message": "OK",
        "qrcId": "BB1S002PRSK6SR3E9R7P0H077UKN1QVF",
        "status": "ACWP",
        "subscriptionToken": "70LSS7DN18SJQRS10006DNPKLJLAGT77"
    }

Примечание: текстовые данные передаются в формате urlencoded.

  • •

    400 Bad Request

    {
        "ErrorCode":"Код ответа",
        "message":"Расшифровка кода ответа"
    }